#include <stdio.h>
#include <stdlib.h>
#include <utmp.h>
#include <fcntl.h>
#include <unistd.h>
#define SHOWHOST
int show_info( struct utmp *utbufp )
{
printf("%-8.8s", utbufp->ut_name);	
printf(" ");	
printf("%-8.8s", utbufp->ut_line);	
printf(" ");	
printf("%10ld", utbufp->ut_time);	
printf(" ");	
#ifdef SHOWHOST
printf("(%s)", utbufp->ut_host);	
#endif
printf("\n");	
return 0;
}
int main()
{
struct utmp	current_record;	
int	utmpfd;	
int	reclen = sizeof(current_record);
if ( (utmpfd = open(UTMP_FILE, O_RDONLY)) == -1 ){
perror( UTMP_FILE );	
exit(1);
}
while ( read(utmpfd, &current_record, reclen) == reclen )
show_info(&current_record);
close(utmpfd);
return 0;	
} 
